import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.datasets import load_diabetes
import pandas as pd
# 设置matplotlib的字体，以支持中文显示
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体为黑体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像时负号'-'显示为方块的问题
# 加载糖尿病数据集
diabetes = load_diabetes()
# 将数据转换为DataFrame，方便操作
df = pd.DataFrame(data=diabetes.data, columns=diabetes.feature_names)
# 去除age和sex列
df = df.drop(['age', 'sex'], axis=1)
# 重命名特征变量为中文
df.columns = ['体重指数（BMI）', '血压（平均血压）', 'T细胞', '低密度脂蛋白', '高密度脂蛋白', '促甲状腺激素', '拉莫三嗪', '血糖水平']
# 绘制箱型图
plt.figure(figsize=(12, 8))
sns.boxplot(data=df)
plt.title('糖尿病数据集特征箱型图', fontsize=16)
plt.xlabel('特征变量', fontsize=14)
plt.ylabel('数值', fontsize=14)
plt.xticks(rotation=45, fontsize=10) # 设置x轴刻度标签字号，并旋转45度
plt.yticks(fontsize=10) # 设置y轴刻度标签字号
#plt.savefig('糖尿病数据集特征箱型图.png', dpi=800) # 保存图片
plt.show()